﻿using Medianamik.Core;
using Medianamik.Core.DAL.Repositories;
using Medianamik.UI.Web.Shop.Data;
using Medianamik.UI.Web.Shop.Data.Repositories;
using Medianamik.UI.Web.MVP.Presentation;
using IPaymentProviderBase = Medianamik.UI.Web.Shop.Data.Interfaces.IPaymentProviderBase;

namespace Medianamik.UI.Web.Shop.Presentation.Presenters
{
    public class PaymentProviderListPresenter<T, TView> : ModulePresenterWithGrid<T, TView,
        IPaymentProviderBaseRepository<T>, INodeTypeRepository, IMedianamikRepository<IMedianamikDTOWithName>> 
        where T : class, IPaymentProviderBase
        where TView: class, IPaymentProviderList
    {
        public PaymentProviderListPresenter(TView view, IPaymentProviderBaseRepository<T> shippingBaseRepository,
            INodeTypeRepository nodeTypeRepository, IMedianamikRepository<IMedianamikDTOWithName> baseTypeRepository)
            : base(view, shippingBaseRepository, nodeTypeRepository, baseTypeRepository)
        {

        }
    }

    public class PaymentProviderListPresenter : PaymentProviderListPresenter<PaymentProviderBase, IPaymentProviderList>
    {
        public PaymentProviderListPresenter(IPaymentProviderList view, IPaymentProviderBaseRepository<PaymentProviderBase> shippingBaseRepository, INodeTypeRepository nodeTypeRepository, IMedianamikRepository<IMedianamikDTOWithName> baseTypeRepository) : base(view, shippingBaseRepository, nodeTypeRepository, baseTypeRepository)
        {
        }
    }
}
